package com.fa4j.product.item.service;

import com.fa4j.common.base.model.RemoveCmd;
import com.fa4j.product.item.model.Item;
import com.fa4j.product.item.model.ItemCreateCmd;
import com.fa4j.product.item.model.ItemModifyCmd;
import com.fa4j.product.item.model.ItemStateChangeCmd;
import jakarta.validation.Valid;

/**
 * 服务接口-商品信息
 *
 * @since 2025-11-22 21:06:24
 */
public interface ItemService {
    /**
     * 商品信息-创建
     *
     * @param cmd 创建参数
     * @return 商品信息
     */
    Item create(@Valid ItemCreateCmd cmd);

    /**
     * 商品信息-编辑
     *
     * @param cmd 编辑参数
     * @return 商品信息
     */
    Item modify(@Valid ItemModifyCmd cmd);

    /**
     * 商品信息-删除
     *
     * @param cmd 删除参数
     * @return 商品信息
     */
    Item remove(@Valid RemoveCmd<Integer> cmd);


    /**
     * 商品信息-状态修改
     *
     * @param cmd 参数
     */
    void changeState(@Valid ItemStateChangeCmd cmd);


}

